package com.lframework.xingyun.basedata.vo.product.costcard;

import com.lframework.starter.web.core.vo.BaseVo;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 更新商品成本卡
 *
 * @author zmj
 * @since 2024-01-01
 */
@Data
public class UpdateProductCostCardVo implements BaseVo, Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * ID
   */
  @ApiModelProperty(value = "ID", required = true)
  @NotBlank(message = "ID不能为空！")
  private String id;

  /**
   * 商品ID
   */
  @ApiModelProperty(value = "商品ID", required = true)
  @NotBlank(message = "商品ID不能为空！")
  private String productId;

  /**
   * 成本卡名称
   */
  @ApiModelProperty(value = "成本卡名称", required = true)
  @NotBlank(message = "成本卡名称不能为空！")
  private String name;

  /**
   * 成本卡描述
   */
  @ApiModelProperty("成本卡描述")
  private String description;

  /**
   * 状态
   */
  @ApiModelProperty(value = "状态", required = true)
  @NotNull(message = "状态不能为空！")
  private Boolean available;

  /**
   * 成本卡明细列表
   */
  @ApiModelProperty(value = "成本卡明细列表", required = true)
  @NotEmpty(message = "成本卡明细不能为空！")
  @Valid
  private List<UpdateProductCostCardDetailVo> details;
} 